module.exports = {
  // 通过 vue.config.js 修改 webpack 的默认配置
  chainWebpack: config => {
    // 发布模式
    config.when(process.env.NODE_ENV === 'production', config => {
      config.entry('app').clear().add('./src/main-prod.js')

      // 通过 externals 加载外部 CDN 资源，防止单文件体积过大的问题
      config.set('externals', {
        vue: 'Vue',
        'vue-router': 'VueRouter',
        axios: 'axios',
        lodash: '_',
        echarts: 'echarts',
        nprogress: 'NProgress',
        'vue-quill-editor': 'VueQuillEditor'
      })

      // 不同的打包环境下，首页内容可能会有所不同。我们可以通过插件的方式进行定制
      config.when(process.env.NODE_ENV === 'production', config => {
        config.plugin('html').tap(args => {
          args[0].isProd = true
          return args
        })
      })
    })
    // 生产模式
    config.when(process.env.NODE_ENV === 'development', config => {
      config.entry('app').clear().add('./src/main-dev.js')

      // 不同的打包环境下，首页内容可能会有所不同。我们可以通过插件的方式进行定制
      config.when(process.env.NODE_ENV === 'development', config => {
        config.plugin('html').tap(args => {
          args[0].isProd = false
          return args
        })
      })
    })
  }
}
